#pragma once

#include "render_system.h"
#include "utility.h"

class MyScene : public Scene
{
public:
    MyScene();
    virtual void init();
    virtual void onRender();
    virtual void onSizeChanged(int iwidth, int iHeight);

    virtual void onKeyboard(unsigned char key, int x, int y);
    virtual void onMouseMove(int x, int y);
    virtual void onMouseButtonEvent(int button, int state, int x, int y);

private:
    GPUProgram          _program;
    BufferObjectPtr     _pIndexBuffer;
    BufferObjectPtr     _pVertexBuffer;
    BufferObjectPtr     _pColorBuffer;
    BufferObjectPtr     _pTexCoordBuffer;
    VertexArrayObject   _vao;

    Texture2D           _texture2d;
    Texture3D           _texture3d;
    Trackball           _trackball;
};